﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace InkFx.WinControl.Core
{
    /// <summary>
    /// 将当前 属性 分配到 "布局" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryLayoutAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "布局";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 "行为" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryActionAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "行为";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 "焦点" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryFocusAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "焦点";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 "设计" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryDesignAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "设计";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 "数据" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryDataAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "数据";
        }
    }
    
    /// <summary>
    /// 将当前 属性 分配到 "外观" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryAppearanceAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "外观";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 "操作" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryOperateAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "操作";
        }
    }


    /// <summary>
    /// 将当前 属性 分配到 "重绘" 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategorySkinThemeAttribute : CategoryAttribute
    {
        protected override string GetLocalizedString(string value)
        {
            return "重绘";
        }
    }


    [AttributeUsage(AttributeTargets.All)]
    public sealed class SRCategoryAttribute : CategoryAttribute
    {
        public SRCategoryAttribute(string category) : base(category)
        {
        }
        protected override string GetLocalizedString(string value)
        {
            return "外观";
        }
    }


}
